With the expansive shift from analog to digital technology over the past couple of decades has come new problems in the art of debugging electronic circuits. One cause has been the way digital circuit components operate in recognizing digital signals. Digital signals are generally quantized into a number of levels. Each quantized level is recognizable by a given digital component and is delineated from contiguous levels by predetermined voltage threshold levels. The most commonly used digital environment is the binary digital system, where a digital signal is quantized into two levels--"zero" and "one". The "zero" and "one" levels are delineated from one another by a low voltage threshold and a high voltage threshold, such that a digital signal is recognized as a "zero" when it is below the low voltage threshold, and is recognized as a "one" when it is above the high voltage threshold. For any given digital component, a digital signal which is above the low voltage threshold but below the high voltage threshold is theoretically unrecognizable by the digital component. However, in practice, depending on how close the digital signal comes to approaching a recognizable voltage range, the digital component may actually recognize the digital signal as being in the quantized level corresponding to the closely approached voltage range (i.e., a signal very close to but not above the high voltage threshold may still be recognized as a "one", or a signal very close to but not below the low voltage threshold may still be recognized as a "zero").
A digital signal may pass out of the "zero" or "one" voltage range and back into the respective "zero" or "one" voltage range without ever passing into the respective opposite "one" or "zero" voltage range. This condition is called a "runt" pulse, which is often further characterized as a "negative runt" and a "positive runt". A negative runt occurs when a digital signal transitions from above to below a high voltage threshold and returns back above the high voltage threshold without first transitioning below a low voltage threshold. A positive runt occurs when a digital signal transitions from below to above a low voltage threshold and returns back below the low voltage threshold without first transitioning above a high voltage threshold. The occurrence of a runt pulse may be due to circuitry noise or perhaps even to improper circuit design. Since digital circuit components depend on a digital signal being in a given quantized level (i.e., in a binary system, a digital component may depend on the digital signal being either a "zero" or a "one"), the occurrence of a runt pulse on the digital signal may cause the digital component to detect a "false" signal which may thereby result in improper operation of the digital circuit. Thus, a runt fault appearing on a digital signal is a strong indication that the digital circuit may function improperly immediately or under slightly different conditions. The actual cause and exact nature of the fault may be unknown but it is often related to either the logic of the circuit design, or a problem with the electrical components comprising the digital circuit. It is for this reason that the detection of runt pulses on digital signals is important for debugging digital circuits. Thus, it is an object of the present invention to provide a method and apparatus for detecting the occurrence of positive and negative runt faults on a digital signal.
Many testing tools presently exist for analyzing the operation of digital circuits, including the logic probe, the logic analyzer and the digital oscilloscope.
The logic probe comprises digital circuitry that displays the state of the signal to which it is connected. Often, two LEDs are provided: one to indicate a high state, the other to indicate a low state. If neither is lighted, the signal is in the float state (i.e., above the low voltage threshold and below the high voltage threshold).
Some logic probes have an additional feature which allows them to "capture" pulses. Such a probe can be used to detect the existence of pulses where none should exist. However, logic probes cannot detect the existence of a bad pulse among a number of good pulses. For example, the commercially available Hewlett Packard Model 545A TTL/CMOS Logic Probe has an independent, built-in pulse memory with LED display. To utilize this feature, the memory must be reset, and the probe connected to the circuit point. A pulse will light the LED, which then remains on until reset. As another feature, the probe also indicates a return to an initial valid level from a bad level for a pulse width greater than or equal to 1 .mu.sec.
Another type of digital measuring instrument is the logic analyzer, which is connected to the test circuit by a number of probes or "grabber connections" each of which acts as a simple connection without the more advanced features of the Hewlett Packard Logic Probe described above. In their connection with a logic analyzer, these probes are often grouped together in groups of eight, termed a "Probe Pod." An example of such a probe pod is the commercially available Biomation Model K100-D/10 Probe Pod. In that model, eight grabber connections are provided for connection to the circuit, and the high and low thresholds are selectable by the user. One or more pods may be connected to the logic analyzer to monitor the necessary number of connections.
In general terms, a logic analyzer is used to record and display the sequence of signal states appearing at each grabber connection of the probe pod. An internal clock is provided, so that the state of each connection is recorded with each clock pulse. The rate of the clock is generally selectable by the user, up to a maximum of about 100 MHz. At 100 MHz, it requires 1 MB of memory to store eight channels of data for 10 ms. An operator, analyzing this data, may spend several hours analyzing the data captured in 10 ms.
Problems inherent in the use of the logic analyzer include the high cost of the equipment, the specialized knowledge necessary to operate a logic analyzer effectively, and the huge amounts of information collected by the logic analyzer which must be reviewed to find a hidden error.
Another type of instrument used to test digital circuits is the oscilloscope, which draws a trace of the signal under test on an oscilloscope screen or CRT. Since each trace only lasts about a microsecond, the eye sees the accumulation of several hundred thousand traces; a single bad trace is usually missed altogether.
A disadvantage, common to both oscilloscopes and logic analyzers, is that both gather data only intermittently, hence they may miss an infrequent problem. For example, both oscilloscopes and logic analyzers miss information that occurs between traces or sampling times.
Another digital circuit testing device is disclosed in Farnbach, U.S. Pat. No. 4,965,800, in which a test circuit can simultaneously detect one or all of three faults in a digital circuit, including: (1) a voltage spike which occurs when the signal briefly jumps either high or low; (2) a float fault which occurs when the signal is floating for too long; and (3) a noise fault which occurs when the signal passes from either the high or the low state to the float state, and then returns directly to the same state. In the Farnbach test circuit, the signal to be tested is first processed in an input state discriminator to classify it by state, either high, low, or float. The Farnbach noise fault detector is an asymmetrical series of AND/OR gates which specifically depends on the prior and present state (high, low or float) of the input signal.
It would be desirable to provide an inexpensive and efficient runt pulse detector which uses a minimum number of circuit components which maximizes the potential bandwidth. It would also be desirable to provide a runt pulse detector which continuously monitors a digital signal and provides for the simultaneous detection of positive and negative runt pulses present on the digital signal based only upon high and low voltage threshold crossings.